Hierarchical references or links in modeling environments

ABSTRACT

Methods and systems for making a reference to a resource in modeling environments are disclosed. The resource to which the reference is made includes the data of the system designed and/or executed in the modeling environments. The system includes subsystems and hierarchical references are made to the data of the subsystems. In response to users&#39; action to select one of the hierarchical references to the resource, the hierarchical references included in the selected hierarchical reference are provided to users so that the users may navigate the data of the subsystems and select one of the subsystems. If users activate the selected hierarchical reference, the data corresponding to the selected hierarchical reference is retrieved and provided to the users.

RELATED APPLICATION

This application claims the benefit of U.S. patent application Ser. No.10/748,064 filed on Dec. 29, 2003, the contents of which are herebyincorporated by reference. This application is related to theInternational Patent Application Ser. No. PCT/US2004/043774 filed onDec. 29, 2004.

FIELD OF THE INVENTION

The present invention relates generally to modeling environments andmore particularly to methods for providing hierarchical references orlinks to resources in the modeling environments.

BACKGROUND OF THE INVENTION

Various classes of block diagrams describe computations that can beperformed on application specific computational hardware, such as acomputer, microcontroller, FPGA, and custom hardware. Classes of suchblock diagrams include time-based block diagrams, such as those foundwithin Simulink®, from The MathWorks, Inc. of Natick, Mass., state-basedand flow diagrams, such as those found within Stateflow®, from TheMathWorks, Inc. of Natick, Mass., and data-flow diagrams. A commoncharacteristic among these various forms of block diagrams is that theydefine semantics on how to execute the diagram.

Historically, engineers and scientists have utilized time-based blockdiagram models in numerous scientific areas such as Feedback ControlTheory and Signal Processing to study, design, debug, and refine dynamicsystems. Dynamic systems, which are characterized by the fact that theirbehaviors change over time, are representative of many real-worldsystems. Time-based block diagram modeling has become particularlyattractive over the last few years with the advent of software packages,such as Simulink®. Such packages provide sophisticated softwareplatforms with a rich suite of support tools that makes the analysis anddesign of dynamic systems efficient, methodical, and cost-effective.

A dynamic system (either natural or man-made) is a system whose responseat any given time is a function of its input stimuli, its current state,and the current time. Such systems range from simple to highly complexsystems. Physical dynamic systems include a falling body, the rotationof the earth, bio-mechanical systems (muscles, joints, etc.),bio-chemical systems (gene expression, protein pathways), weather andclimate pattern systems, etc. Examples of man-made or engineered dynamicsystems include: a bouncing ball, a spring with a mass tied on an end,automobiles, airplanes, control systems in major appliances,communication networks, audio signal processing, nuclear reactors, astock market, etc. Professionals from diverse areas such as engineering,science, education, and economics build mathematical models of dynamicsystems in order to better understand system behavior as it changes withthe progression of time. The mathematical models aid in building“better” systems, where “better” may be defined in terms of a variety ofperformance measures such as quality, time-to-market, cost, speed, size,power consumption, robustness, etc. The mathematical models also aid inanalyzing, debugging and repairing existing systems (be it the humanbody or the anti-lock braking system in a car). The models may alsoserve an educational purpose of educating others on the basic principlesgoverning physical systems. The models and results are often used as ascientific communication medium between humans. The term “model-baseddesign” is used to refer to the use of block diagram models in thedevelopment, analysis, and validation of dynamic systems.

The modeling and execution environments may employ hyperlinks to makereferences to resources including the data of the systems designedand/or executed using the modeling and execution tools. Hyperlinks areone of the technologies that provide references to resources withoutmaking a copy of the resources. Hyperlinks provide active references toresources. The active references enable users to retrieve the referencedresources. The resources may be of many types including Hypertext MarkupLanguage (HTML) pages, Microsoft Word™ documents, Adobe Postscript™documents, and directory listings. Hyperlinks are a convenient mechanismin electronic resources for providing active references.

In conventional modeling and execution environments, hyperlinks rely ona flat organization of data in the referenced resource, which means thateach of the hyperlinks provides a reference to a single resource.Furthermore, the flat organization of data in the conventional modelingand execution environments is unwieldy and not efficient, especially ifthe amount of the data in the referenced resource is large. Accordingly,there is a need for a system that provides efficient references toresources that have a large amount of data.

SUMMARY OF THE INVENTION

The present invention provides methods for making references or links toresources in modeling and execution environments. The present inventionprovides references or links to the data of the system designed and/orexecuted in the modeling and execution environments. The referenced dataof the system includes different kinds of data on the system, which maybe described as a horizontal hierarchy. The different kinds of the datamay include block data, coverage report data, requirements data,generated code data, etc. In connection with the references, the presentinvention may provide a user interface that displays options for usersto select one of the different kinds of the data on the system. Theoptions to select one of the different kinds of data on the systemenable the users to consider the system from many different viewpoints.

The present invention may also provide references to each kind of dataon the system in a hierarchical manner, which may be described as avertical hierarchy. The system includes sub-nodes that correspond to thesubsystems of the system. In connection with the references, the presentinvention may provide a user interface that displays the sub-nodes ofthe system so that the users may navigate the sub-nodes and select oneof the sub-nodes. If the users activate the selected node, the datacorresponding to the subsystem is retrieved and provided to the users.

The present invention may also provide a user interface that displaysoptions to select a super-node of the system corresponding to asuper-system that includes the system. The super-system includes thesystem as one of its subsystems and is hierarchically in a higher levelthan the system. If users select the options, the super-node is providedto users so that the users may navigate to the sub-nodes of thesuper-node and select one of the sub-nodes of the super-node.

In an illustrative embodiment of the present invention, a method isprovided for providing a resource with a reference to a system in anelectronic device that runs a software tool for design and execution ofthe system. The system has different kinds of data, such as therequirements document and generated code of the system. The resource isprovided with a visual reference that the system is referenced by theresource. In response to an action taken by users in connection with thevisual reference, a user interface provided to display options to selectone of different kinds of data on the system so that the users navigatethe different kinds of data on the system.

In another illustrative embodiment of the present invention, a method isprovided for providing a resource with a reference to the system in anelectronic device that runs a software tool for design and execution ofthe system. The resource is provided with a visual reference that thesystem is referenced by the resource. In response to an action taken byusers in connection with the visual reference, a user interface isprovided to display sub-nodes of the referenced system so that the usersnavigate the sub-nodes of the referenced system to select one of thesub-nodes, wherein the sub-nodes are hierarchically structured andcorrespond to subsystems of the referenced system.

In still another illustrative embodiment of the present invention, amethod is provided for providing a resource with a reference to a firstsystem in an electronic device that runs a software tool for systemlevel design and execution of the first system. The first system is asubsystem of the second system. The resource is provided with a visualreference that the first system is referenced by the resource. Inresponse to an action taken by users in connection with the visualreference, a user interface is presented to enable users to navigate tothe second system, wherein the second system is hierarchicallystructured and in a higher level than the first system.

By providing a hierarchical reference to the data of the system designedand/or executed in the modeling and execution environments, the presentinvention enables users to select one of the different kinds of data onthe system. This enables users to consider the system from manydifferent viewpoints. In addition, the hierarchical reference to eachkind of the data on the system enables efficient references to the dataof the system that has a large amount of data.

BRIEF DESCRIPTION OF THE DRAWINGS

The aforementioned features and advantages, and other features andaspects of the present invention, will become better understood withregard to the following description and accompanying drawings, wherein:

FIG. 1 is a block diagram representation of an exemplary modeling andexecution environment that generates resources making references orlinks to systems in the illustrative embodiment of the presentinvention;

FIG. 2 is a block diagram representation of an electronic devicesuitable for practicing the illustrative embodiment of the presentinvention;

FIGS. 3A and 3D are exemplary node representation of the hyperlinkemployed in the illustrative embodiment of the present invention;

FIGS. 3B and 3C are exemplary node representations of the hierarchicalstructure of the referenced system in the illustrative embodiment of thepresent invention;

FIG. 4A is a block diagram representation of an exemplary model for asystem designed in the modeling and execution environment of theillustrative embodiment of the present invention depicted in FIG. 1;

FIG. 4B is a block diagram representation of an exemplary model for asubsystem of the system in the illustrative embodiment of the presentinvention depicted in FIG. 1;

FIG. 5A is an exemplary resource that reports algebraic loop errors inthe model depicted in FIG. 4A-4B;

FIG. 5B is an exemplary node representation of the ‘loop02’ systemreferenced in the error message depicted in FIG. 5A;

FIG. 6A is a block diagram representation of an exemplary model for asystem and subsystem designed in the modeling and execution environmentof the illustrative embodiment of the present invention depicted in FIG.1;

FIG. 6B is an exemplary node representation of a motor vehicle modelthat may include the power window control system shown in FIG. 6A;

FIG. 7A is an exemplary resource that include a hyperlink to the powerwindow control system depicted in FIG. 6A;

FIG. 7B depicts another user interface that provides horizontalhierarchy of the system depicted in FIG. 6A;

FIG. 7C depicts another user interface that provides an option for usersto select a super-node of the system depicted in FIG. 6A; and

FIG. 7D depicts another user interface that provides horizontalhierarchy of the system depicted in FIG. 6A.

DETAILED DESCRIPTION

The illustrative embodiment of the present invention concerns a modelingand execution tool running on an electronic device. The modeling andexecution tools of the illustrative embodiment generate resources, suchas reporting documents, that include a reference to the system designedand/or executed using the modeling and execution tools. One of skill inthe art will appreciate that the reference to the system is illustrativeand the reference can be made to other resources, such as files anddirectories. The system referenced has a horizontal hierarchy andincludes different kinds of data on the system. The illustrativeembodiment of the present invention provides a user interface inconnection with the reference to the system. The user interface displaysthe different kinds of data on the system so that users may select onekind of the data. The display of the horizontal hierarchy of thereferenced system in the user interface enables users to consider thesystem from many different viewpoints.

In the illustrative embodiment of the present invention, the systemreferenced also has a vertical hierarchy and is represented by nodesthat correspond to the subsystems of the referenced system. Theillustrative embodiment of the present invention provides another userinterface in connection with the reference to the system. The userinterface displays the hierarchically structured nodes of the referencedsystem so that users may navigate the subsystems of the referencedsystem and select one of the subsystems. If the users select one of thesubsystems, the data corresponding to the selected subsystem isretrieved and provided to the users. The display of the hierarchicallystructured nodes of the referenced system in the user interface enablesusers to access the data of the referenced system in a more efficientmanner.

The illustrative embodiment of the present invention employs hyperlinksto provide references to the systems designed and/or executed in themodeling and execution environments. Hyperlinks are one of thetechnologies for providing references to resources without making a copyof the resources. The hyperlinks enable users to retrieve the referencedresource. Hyperlinks are a convenient mechanism in electronic resourcesas it allows active references. One of skill in the art will appreciatethat the hyperlinks are an illustrative embodiment of the presentinvention and do not limit the scope of the present invention. Rather,the present invention may be applicable to any reference that enablesusers to retrieve referenced resources.

FIG. 1 is an exemplary modeling and execution environment 100 suitablefor practicing the illustrative embodiment of the present invention. Thesystem 100 includes a block library 110, a state flowchart tool 120, amodeling and execution tool 130, a requirements document 140, a coveragereport 150, a code generation tool 160 and generated code 170. One ofskill in the art will appreciate that the modeling and executionenvironment 100 is not limited to graphical modeling and executionenvironments, but rather includes any other modeling and executionenvironments, such as textual modeling and execution environments.

The block library 110 contains blocks of application specific modelsthat support the modeling and execution of systems. The blocks in theblock library 110 are incorporated into the block diagrams of thesystems designed using the modeling and execution tool 130. The blocksprovided from the block library 100 are represented in rectangularblocks in the illustrative embodiment of the present invention. One ofskill in the art will appreciate that the blocks in the block library110 can be represented in other graphical symbols or textual symbols. Anillustrative embodiment of the block library 110 may be found inSimulink Blocksets, such as the Aerospace Blockset and the DSP (DigitalSignal Processing) Blockset, from The MathWorks, Inc. of Natick, Mass.The Blocksets provide models and utilities for the development andintegration of models for systems and sub-systems of the systems. Theblocks used in modeling the systems may be built on native Simulink®blocks or S-functions which enable users to define the blocks that canoperate in the Simulink® environment. S-functions written in C-code, forexample, are compiled using the MEX command in MATLAB® to make a filethat is executable in the Simulink® environment.

The state flowchart tool 120 provides a graphical environment formodeling and designing event-driven systems. The state flowchart tool120 enables users to generate state flowcharts that graphicallyrepresent hierarchical and parallel states and the event-driventransitions between the states of the systems. Based on the stateflowcharts created in the state flowchart tool 120, the modeling andexecution tool 130 executes the systems and analyzes the behavior of thesystems. In the modeling and execution tool 130, the state flowchartsmay exchange data, signals, and events with other state flowcharts.Stateflow® from The MathWorks, Inc. of Natick, Mass., is an example ofthe state flowchart tool 120.

The modeling and execution tool 130 provides a graphical execution andprototyping environment for modeling, executing, and analyzing systems.The block diagrams of the systems are designed and executed in themodeling and execution tool 130 using the model blocks provided from theblock library 110 or the state flowcharts provided from the state flowtool 120. Simulink®, from The MathWorks, Inc. of Natick, Mass., is anexemplary modeling and execution tool 130. Those skilled in the art willappreciate that other modeling and execution tools may be used. TheBlockset operates in Simulink®. Stateflow® is integrated with Simulink®,which enables each of the state flowcharts to be represented as its ownblock.

Simulink® enables users to design a block diagram of systems, executethe systems' behavior, analyze their performance, and refine the design.Simulink® allows users to design systems through a user-interface thatallows drafting block diagrams of the systems. All of the blocks in theblock library 110 are available to users when the users are building theblock diagram of the systems. Individual users may be able to customizethe blocks to: (a) reorganize blocks in some custom format, (b) deleteblocks they do not use, and (c) add custom blocks they have designed.The blocks may be dragged through some human-machine interface (such asa mouse or keyboard) from the block library 110 on to the window (i.e.,model canvas). Simulink® includes a block diagram editor that allowsusers to perform such actions as draw, edit, annotate, save, and printout block diagram representations of systems. The block diagram editoris a graphical user interface (GUI) component that allows drafting ofblock diagram models by users. In Simulink®, there is also a textualinterface with a set of commands that allow interaction with thegraphical editor. Using this textual interface, users may write specialscripts that perform automatic editing operations on the block diagram.Simulink® also allows users to execute the designed systems to determinethe behavior of the systems. Simulink® includes a block diagramexecution engine that carries out the task of compiling and linking theblock diagram to produce an “in-memory executable” version of the modelthat is used for generating code and/or executing a block diagram model.

The modeling and execution tool 130 also facilitates the requirementsdocument 140 for the design and execution of the systems. Therequirements document 140 may be in Microsoft Word™ documents orMicrosoft Excel™ documents, or HTML (Hypertext Markup Language)documents. The requirements document 140 sets forth restrictions orrequirements for the design of the systems. The requirements documentmay be associated with a node that represents a subsystem in the tree ofthe systems. Multiple requirements documents may be associated with asingle node in the tree. A requirement document may be added to any nodein the hierarchical tree of the system. After adding a requirement to anode, the requirements document may be changed.

The coverage report 150 shows which functionality of the system isexecuted in the simulations of the system. System analysis generallyrelies on performing a large number of simulations that attempt to coverthe operational envelope of the system under scrutiny. The input foreach of the simulations is chosen such that critical points of theoperational envelope are tested, as such, each of the input sets isreferred to as a test vector. To confirm that the test vectors cover theoperational envelope, the coverage report 150 shows which functionalityof the system model has been executed. This ensures that the correctnessof the functionality that is conditionally executed is indeed tested forat least one of the test vectors.

The code generation tool 160 generates customizable C code 170 directlyfrom the block diagrams for rapid prototyping, hardware-in-the-loopexecutions, and desktop rapid execution. In the illustrative embodimentof the present invention, the system designed and/or executed in theenvironment 100 may be linked with multiple data including the blockdiagram, coverage report 150, requirements document 140 and generatedcode 170 of the system. One of skill in the art will appreciate that theblock diagram, coverage report 150, requirements document 140 andgenerated code 170 are illustrative data linked with the system and thesystem may be linked with any other kinds of data.

FIG. 2 is a block diagram representation of an electronic device 200suitable for practicing the illustrative embodiment of the presentinvention. The electronic device 200 includes a secondary memory 250, aprimary memory 260, a microprocessor 270, a monitor 280 and akeyboard/mouse 290. The microprocessor 270 controls each component ofthe electronic device 200 to run the software tools in the modeling andexecution environment 100 properly. The electronic device 200 receivesthe data necessary for the design and execution of a system through thekeyboard/mouse 290, such as the requirements document 140. Theelectronic device 200 displays in the monitor 280 the data generated inthe modeling and execution environment 100, including the block diagramand the generated code 170. The primary (working) memory 260 fetchesfrom the secondary (storage) memory 250 and provides to themicroprocessor 270 the codes that need to be accessed by themicroprocessor 270 to operate the electronic device 200 and to run themodeling and execution environment 100. The secondary memory 250 usuallycontains software tools for applications. The secondary memory 250includes, in particular, code 210 for the block library 110, code 220for the state flow tool 120, code 230 for the modeling and executiontool 130, and code 240 for the code generation tool 160.

FIG. 3A is an exemplary node representation of the hyperlink employed inthe illustrative embodiment of the present invention. The hyperlink hasthe structure of a directed graph that includes a referencing node 310,a referenced node 330 and a link 320. The referencing node 310represents a resource that makes a reference and the referenced node 330represents a resource that is referenced. In the illustrativeembodiment, the referenced node 330 represents the data of the systemdesigned and/or executed in the modeling and execution environment 100.One of skill in the art will appreciate that the resources referencedmay include other resources, such as text files and directories. Thehyperlink may be associated to any part of the data of the systemreferenced. The referenced system is hierarchically structured and thenode 330 may have one or more sub-nodes 331-336 that correspond tosubsystems of the referenced system. The nodes 331 and 334 are thesub-nodes of the node 330. The nodes 332-333 and 335-336 are sub-nodesof the nodes 331 and 334, respectively. The nodes 331-336 can bereferenced as part of the node 330. In the illustrative embodiment ofthe present invention, each of the contained nodes (for example, nodes332 and 333) can be referenced from a containing node (for example, node331). One of skill in the art will appreciate that the hierarchicalstructure of the referenced system depicted in FIG. 3A is illustrativeand the system may have a different hierarchical structure.

FIG. 3B is a representation 370 of the vertical hierarchy of thereferenced system in the illustrative embodiment of the presentinvention. The node representation 370 shows a hierarchical treestructure of the referenced system depicted in FIG. 3A. The node 330represents the referenced system and the arrows indicate that the nodes331 and 334 are the sub-nodes of the node 330. The nodes 332-333 and335-336 are sub-nodes of the nodes 331 and 334, respectively. Theselection of a sub-node is described below in more detail in connectionwith FIGS. 5A and 7A. One of skill in the art will appreciate that thenumber of sub-nodes is not limited to two and the sub-nodes of a nodemay be more than two.

FIG. 3C is a representation 380 of the horizontal hierarchy of thereferenced system in which two tree structures t1 and t2 representdifferent kinds of data on the referenced system. For example, thereferenced system may be associated with the data of the block diagramand generated code of the system. Thus, the first and second treestructures t1 and t2 originated from the nodes 330 and 330′ mayrepresent the block diagram data and the generated code data of thereferenced system, respectively. One of skill in the art will appreciatethat the trees t1 and t2 in the horizontal hierarchy of the referencedsystem may represent another data of the system, such as data for therequirements document of the referenced system. One of skill in the artwill also appreciate that the number of the trees in the horizontalhierarchy is not limited to two and can be extended to more than twodepending on how many different kinds of data are associated to thereferenced system. In addition, one of skill in the art will furtherappreciate that each of the trees may have different structure thanother trees. In the horizontal hierarchy structures 380, users mayselect one of the tree structures representing the different kinds ofdata on the referenced system. Therefore, the users may shift from acurrent tree to another tree by mapping m12:t1→t2 or m21:t2→t1, as shownin FIG. 3C. The selection of a tree structure is described below in moredetail in connection with FIGS. 7B and 7D.

FIG. 3D is another exemplary node representation of the hyperlink in theillustrative embodiment of the present invention. The hyperlink includesnodes 340 and 360 and a link 350. The nodes 340 and 360 represent aresource that makes a reference, and a system that is referenced,respectively. The node 360 representing the referenced system isincluded in the super-nodes 362 and 366 that are hierarchically in ahigher level than the referenced node 360. The super-nodes 362 and 366that contain the referenced node 360 represent super-systems thatinclude the referenced system. The nodes 362 and 366 can be referencedfrom the reference node 360. Other contained nodes (for example, node365) can be referenced from a containing node (for example, node 366).The selection of a super-node is described below in more detail inconnection with FIG. 7C.

FIG. 4A is a block diagram representation of an exemplary system 400designed in the modeling and execution environment 100 in theillustrative embodiment of the present invention. The system 400includes Constant block 410, Subsystem block 420, Gain block 430 andScope block 440. The Constant block 410 is connected to the first inputof the Subsystem block 420. The Subsystem block 420 generates an outputthat is fed back through the Gain block 430 to the second input of theSubsystem block 420. The Scope block 440 is used to visualize the outputof the Subsystem block 420. The internals of the Subsystem block 420 areshown in FIG. 4B. The Subsystem block 420 includes Sum block 470 thatsums the first input 450 and the second input 460, and Gain block 480.The Subsystem contains an algebraic loop because the second input 470 ofthe Subsystem block 420 is algebraically related to the output of theSubsystem 420. So, in order to compute the output of the Subsystem block420, the input 470 of the Subsystem 420 has to be known, which requiresthe output of the Subsystem 420 to be known. Algebraic loops may arisefor many reasons and are not considered problematic in some domains(such as, e.g., plant modeling). However, in other domains (e.g.,embedded control design) algebraic loops indicate an anomalous design.In case of the latter, it is desired to report the presence of analgebraic loop as an error and abort further analysis or execution.

FIG. 5A shows an exemplary error report 500 for the algebraic loop inFIG. 4A in the illustrative embodiment of the present invention. Thereport 500 lists all blocks 510 involved in the algebraic loop. If usersselect one of the blocks in the list, a more elaborate error message isdisplayed in the bottom pane 520 of the window. This message may includea hyperlink 530 to the selected block in the actual model of the system.In FIG. 5A, ‘loop02’ is selected in the list and referenced in the errormessage. The hyperlink 530 is underlined. If the users select thehyperlink 530 with the index button of the pointing device 290, a userinterface 540 is provided to display Subsystem 541 and Gain 542 thatcorrespond to the Subsystem block 420 and the Gain block 430 of the‘loop02’ system. In the illustrative embodiment, the user interface 540is provided in a pop-up menu. If the users select the Subsystem 541 inthe user interface 540, another user interface 550 is provided fordisplaying Sum 551 and Gain 552 that correspond to the Sum block 470 andthe Gain block 480, respectively. The user interfaces 540 and 550provide all of the sub-nodes of the ‘loop02’ system so that users maynavigate the sub-nodes of the ‘loop02’ system and easily come to one ofthe sub-nodes. FIG. 5B is an exemplary node representation of the‘loop02’ system referenced in the error message depicted in FIG. 5A inthe illustrative embodiment of the present invention. The node 560represents the ‘loop02’ algebraic loop system and includes sub-nodes 561and 562 that correspond to the Subsystem block 420 and the Gain block430, respectively. The node 561 includes sub-nodes 563 and 564 thatcorrespond to the Sum block 470 and the Gain block 480, respectively.The hierarchical node structure depicted in FIG. 5B matches with thedisplay provided in the user interfaces 540 and 550 in FIG. 5A. Theillustrative embodiment of the present invention implements the directmapping between the hierarchy of the referenced system and thehierarchical hyperlink to the referenced system.

In order to allow users to access a hierarchical hyperlink by executingone simple user interface, the user interface may be provided byselecting a meta-key in the keyboard 290 before invoking the regularactivation. After the users select one of the hyperlinks provided in theuser interface, the hyperlinks contained in the selected hyperlink mayin turn be made available through the same mechanism. For example, theshift or control key can be pressed in combination with clicking theindex button on the pointing device 290 to access the user interfaceprovided in a hierarchical pop-up menu. The pop-up menu may also beprovided when the button is depressed longer than needed to activate the‘click’ call-back or when the pointing device 290 is moved over thehyperlink. The inputs from the users through the keyboard/pointingdevice 290 are sent to the microprocessor 270 which determines whetherthe users select a hyperlink. When determining that the users select ahyperlink, the microprocessor 270 runs code for the hierarchicalhyperlinks of the selected hyperlink to provide the hierarchicalhyperlinks of the selected hyperlink in the user interface. An exemplaryHTML code for hierarchical hyperlinks is provided below with referenceto FIG. 7A. The pop-up menu would contain the hierarchy of hyperlinkscontained by the selected node. Alternatively, hierarchical hyperlinkscan be individually marked to either allow direct activation or alwaysrequiring a hierarchical selection (e.g., in case the link is a‘virtual’ grouping of others).

FIG. 6A is a block diagram representation of another exemplary system600 designed in the modeling and execution environment 100 in theillustrative embodiment of the present invention. The system 600implements a power window control system for motor vehicles, whichincludes validate_driver block 610, validate-passenger block 620,control block 630 and detect_obstacle_endstop block 640. Thevalidate_driver block 610 and validate-passenger block 620 receiveinputs for moving the windows of motor vehicles from drivers andpassengers, respectively. The detect_obstacle_endstop block 640 detectsobstacles in moving the windows, and the upper end-stop of the windows.The control block 630 outputs signals for moving up and down the windowsbased on the input signals from the validate_driver block 610,validate-passenger block 620 and detect_obstacle_endstop block 640. FIG.6B is an exemplary node representation of a motor vehicle model that mayinclude the power window control system 600 shown in FIG. 6A in theillustrative embodiment of the present invention. The node 650 in ahighest level may represent the motor vehicle that may have a pluralityof subsystems including a power window system represented by the node660. The node 661, which is one of the sub-nodes of the node 660,represents the power window control system 600. The nodes 662-665, whichare sub-nodes of the node 661, correspond to the validate_driver block610, validate-passenger block 620, control block 630 anddetect_obstacle_endstop block 640. The node 662 representing thedetect_obstacle_endstop block 640 includes sub-nodes 666-668corresponding to the process_current block, detect_obstacle block anddetect_endstop block (not shown in FIG. 6A).

FIG. 7A is an exemplary resource 700 that includes a hyperlink 710 tothe power window control system 600 depicted in FIG. 6. The hyperlink710 included in the resource 700 is underlined. If users select thehyperlink 710 with a pointing device 290, a user interface is providedto display the detect_obstacle_endstop 721, control 722,validate-passenger 723 and validate_driver 724, which correspond to thedetect_obstacle_endstop block 640, control block 630, validate-passengerblock 620 and validate_driver block 610 of the system 600, respectively.If the users select the detect_obstacle_endstop 721 in the userinterface 720, another user interface 730 is provided for displaying thesub-nodes of the detect_obstacle_endstop 721, that is, process_current731, detect_obstacle 732 and detect_endstop 733. If the users select theprocess_current 731 in the user interface 730, a subsequent userinterface may be provided for displaying the sub-nodes of theprocess_current 731. One of skill in the art will appreciate that theoptions provided in the user interface 730 may be provided in the formof a drop down or pull down menu associated with the representation ofthe detect_obstacle_endstop 721. The user interfaces 720 and 730 providethe sub-nodes of the system 600 so that users may navigate the nodes andeasily come to a subsystem of the system 600. The hierarchical nodestructure depicted in FIG. 6B matches with the display provided in theuser interfaces 720 and 730 in FIG. 7A. The illustrative embodiment ofthe present invention implements the direct mapping between thehierarchy of the referenced system and the hierarchical hyperlink to thereferenced system.

Code for the references provided in the user interfaces 720 and 730 maybe implemented in Hypertext Markup Language (HTML), Extensible MarkupLanguage (XML), or any other languages that provide a function to make areference to another resource, such as JavaScript. In an illustrativeembodiment of the present invention, the contained nodes are precompiledin the referencing document and marked accordingly. In anotherillustrative embodiment of the present invention, the contained nodesmay be dynamically retrieved from the referencing node. An exemplaryHTML code using an ‘a hhref’ tag to indicate hierarchical referencesshown in FIG. 7A is provided as follows.

-   part of the

<a href=”powerwindow/powerwindow_control_system”> <ahhref=”powerwindow/powerwindow_control_system/detect_obstacle_endstop”label=” detect_obstacle_endstop”> <ahhref=”powerwindow/powerwindow_control_system/detect_obstacle_endstop/process_current”label=”process_current”> <ahhref=”powerwindow/powerwindow_control_system/detect_obstacle_endstop/process_current/absolute_value”label=”absolute_value”></a> <ahhref=”powerwindow/powerwindow_control_system/detect_obstacle_endstop/process_current/scale_daq”label=”scale_daq”></a> </a> <ahhref=“powerwindow/powerwindow_control_system/detect_obstacle_endstop/detect_obstacle”label=“detect_obstacle”></a> <ahhref=“powerwindow/powerwindow_control_system/detect_obstacle_endstop/detect_endstop”label=“detect_endstop”></a> </a> <ahhref=”powerwindow/powerwindow_control_system/control” label=”control”></a> <ahhref=”powerwindow/powerwindow_control_system/validate_passenger”label=”validate_passenger”> <ahhref=”powerwindow/powerwindow_control_system/validate_passenger/check_up”label=”check_up”></a> <ahhref=”powerwindow/powerwindow_control_system/validate_passenger/check_down”label=”check_down”></a> <ahhref=”powerwindow/powerwindow_control_system/validate_passenger/mutually_exclusive”label=”mutually_exclusive”></a> </a> <ahhref=”powerwindow/powerwindow_control_system/validate_driver”label=”validate_driver”> <ahhref=”powerwindow/powerwindow_control_system/validate_driver/check_up”label=”check_up”></a> <ahhref=”powerwindow/powerwindow_control_system/validate_driver/check_down”label=”check_down”></a> <ahhref=”powerwindow/powerwindow_control_system/validate_driver/mutually_exclusive”label=”mutually_exclusive”></a> </a> powerwindow_control_system</a> thatoperates

FIG. 7B depicts another user interface 740 that provides horizontalhierarchy of the system 600. The user interface 720 provides the nodesof the system 600 for users to select, which includes thedetect_obstacle_endstop 721, control 722, validate-passenger 723 andvalidate_driver 724. If the users select the detect_obstacle_endstopoption in the user interface 720, additional user interface 740 isprovided for displaying options to select different kinds of data on thedetect_obstacle_endstop block 640, which include coverage report 741,requirements document 742 and generated code 743. One of skill in theart will appreciate that the different kind of data depicted in FIG. 7Bis illustrative and may include any kind of data that is linked with thedetect_obstacle_endstop block 640. If the users select one of theoptions 741-743, the selected data on the detect_obstacle_endstop isretrieved and provided to the users. FIG. 7C depicts another userinterface 750 that provides an option for users to select a super-nodeof the system 600. The user interface 720 provides the nodes of thesystem 600 for users to select, which includes thedetect_obstacle_endstop 721, control 722, validate-passenger 723 andvalidate_driver 724. An additional user interface 750 providesadditional options for users to go to an upper level of nodes, forexample, the node 760 representing a power window system. Therefore, ifusers select the up arrow 750 in the pop-up menu, the users may accessthe power window system that is in a higher level than the power windowcontrol system 600.

FIG. 7D depicts another user interface 770 that provides horizontalhierarchy of the system 600. The user interface 720 provides the nodesof the system 600 for users to select, which includes thedetect_obstacle_endstop 721, control 722, validate-passenger 723 andvalidate_driver 724. The user interface 720 includes an additional node760 that corresponds to the power window control system 600. If theusers select the power window 760 in the user interface 720, additionaluser interface 770 is provided for displaying options to selectdifferent types of power window control system implemented in differentdesign environments, such as Simulink®, Stateflow®, SimMechanics, etc.The user interface 720 refers to the block diagram of the power windowcontrol system 600, which is implemented in Simulink®. The additionaluser interface 770 includes options for selecting power window controlsystems implemented in Stateflow® 771 and SimMechanics 772. One of skillin the art will appreciate that Stateflow® 771 and SimMechanics 772 areillustrative and the user interface may includes options to select anydesign environment. Furthermore, the user interface may include anoption for user entered selection, for example, all blocks of type‘Gain,’ as shown in FIG. 7D. An exemplary HTML code using an ‘a bhref’tag to indicate hierarchical references shown in FIG. 7D is provided asfollows.

-   part of the

<a href=”powerwindow/powerwindow_control_system”> <ahref=””label=”powerwindow”> <a bhref=”” label=”Stateflow”> <a bhref=”powerwindow/powerwindow_control_system/control” label=”control”</a> <abhref=”powerwindow/powerwindow_control_system/detect_obstacle_endstop/detect_obstacle/delay_detection”label=”delay_detection”</a> </a> <a bhref=”” label=”SimMechanics”> <abhref=”powerwindow/window_system/process/plant/window/door”label=”door”</a> <abhref=”powerwindow/window_system/process/plant/window/ window”label=”window”</a> <abhref=”powerwindow/window_system/process/plant/window/ rotate_and_slide”label=”rotate and slide”</a> </a> <hr> <a bhref=”” label=”Type is Gain”><a bhref=”powerwindow/window_system/process/plant/window/force”label=”force”</a> <abhref=”powerwindow/window_system/process/plant/window/torque”label=”torque”</a> </a> </a> <hr> <ahhref=”powerwindow/powerwindow_control_system/detect_obstacle_endstop”label=” detect_obstacle_endstop”> <ahhref=”powerwindow/powerwindow_control_system/detect_obstacle_endstop/process_current”label=”process_current”> <ahhref=”powerwindow/powerwindow_control_system/detect_obstacle_endstop/process_current/absolute_value”label=”absolute_value”></a> <ahhref=”powerwindow/powerwindow_control_system/detect_obstacle_endstop/process_current/scale_daq”label=”scale_daq”></a> </a> <ahhref=”powerwindow/powerwindow_control_system/detect_obstacle_endstop/detect_obstacle”label=” detect_obstacle”></a> <ahhref=”powerwindow/powerwindow_control_system/detect_obstacle_endstop/detect_endstop”label=” detect_endstop”></a> </a> <ahhref=”powerwindow/powerwindow_control_system/control” label=”control”></a> <ahhref=”powerwindow/powerwindow_control_system/validate_passenger”label=”validate_passenger”> <ahhref=”powerwindow/powerwindow_control_system/validate_passenger/check_up”label=”check_up”></a> <ahhref=”powerwindow/powerwindow_control_system/validate_passenger/check_down”label=”check_down”></a> <ahhref=”powerwindow/powerwindow_control_system/validate_passenger/mutually_exclusive”label=”mutually_exclusive”></a> </a> <ahhref=”powerwindow/powerwindow_control_system/validate_driver”label=”validate_driver”> <ahhref=”powerwindow/powerwindow_control_system/validate_driver/check_up”label=”check_up”></a> <ahhref=”powerwindow/powerwindow_control_system/validate_driver/check_down”label=”check_down”></a> <ahhref=”powerwindow/powerwindow_control_system/validate_driver/mutually_exclusive”labeh=”mutually_exclusive”></a> </a> powerwindow control system</a> thatoperates

In summary, the illustrative embodiment of the present inventionprovides hierarchical hyperlinks to data. The hyperlinked data isorganized hierarchically so that it can be easily accessed by users. Forthese purposes, the illustrative embodiment of the present inventionprovides user interfaces to display the hierarchical structure of thehyperlinked data. The users can navigate the hyperlinked data and selecta portion of the hyperlinked data in the hierarchical structure. Theillustrative embodiment of the present invention also provides the userinterface element with options to select one of different kinds of datain the horizontal hierarchy of the hyperlinked data, such as blockdiagram data and the generated code data. Therefore, users can look atthe linked data from many different viewpoints. Furthermore, theillustrative embodiment of the present invention provides the userinterface with an option for users to access data that is hierarchicallyin a higher level than the hyperlinked data.

It will thus be seen that the invention attains the objectives stated inthe previous description. Since certain changes may be made withoutdeparting from the scope of the present invention, it is intended thatall matter contained in the above description or shown in theaccompanying drawings be interpreted as illustrative and not in aliteral sense. For example, the illustrative embodiment of the presentinvention may be practiced in any other modeling and executionenvironment that provides active references to resources. Practitionersof the art will realize that the sequence of steps and architecturesdepicted in the figures may be altered without departing from the scopeof the present invention and that the illustrations contained herein aresingular examples of a multitude of possible depictions of the presentinvention.

1. A physical computer-readable medium storing computer-executableinstructions that are executed on a processing device, the mediumstoring: one or more instructions for displaying at least a portion of ablock diagram of an executable model of a dynamic system on a displaydevice, the block diagram of the executable model comprising one or moreblocks arranged in one or more levels according to an internal hierarchyof the block diagram of the executable model; one or more instructionsfor displaying a graphical representation of the internal hierarchy ofthe block diagram of the executable model on the display device, thegraphical representation representing the internal hierarchy of theblock diagram of the executable model with one or more icons; one ormore instructions for selecting one of the one or more icons thatreference the level; one or more instructions for accessing the selectedone of the one or more levels of the block diagram of the executablemodel through the graphical representation; one or more instructions forreceiving a first input; one or more instructions for selecting a firstblock of the block diagram of the executable model on the graphicalrepresentation based on the received first input; and one or moreinstructions for receiving a second input.
 2. The physical medium ofclaim 1, wherein at least one icon references each level.
 3. Thephysical medium of claim 1, wherein the one or more blocks are displayedwith corresponding names on the graphical representation.
 4. Thephysical medium of claim 1, wherein the graphical representationindicates a functional relationship among the one or more blocks of theblock diagram of the executable model.
 5. The physical medium of claim4, wherein the functional relationship among the one or more blocks ofthe block diagram of the executable model is indicated by a visualreference on the graphical representation.
 6. The physical medium ofclaim 1, further storing: one or more instructions for displaying theone or more paths with a visual reference on the graphicalrepresentation.
 7. The physical medium of claim 1, accessing furtherstoring: one or more instructions for activating one of the one or moreicons on the graphical representation using an input device to displayone or more blocks represented by the activated icon on the displaydevice.
 8. A physical computer-readable medium storingcomputer-executable instructions that are executed on a processingdevice, the medium storing: one or more instructions for displaying afirst block diagram of an executable model of a dynamic system or atextual description related to the first block diagram of the executablemodel, the first block diagram of the executable model comprising one ormore blocks arranged in one or more hierarchical levels; one or moreinstructions for displaying a list of resources associated with thefirst block diagram of the executable model or the textual descriptionrelated to the first block diagram of the executable model on a userinterface, one or more instructions for providing access to resourcesassociated with a second block diagram of an executable model of adynamic system in a higher level than the first block diagram of theexecutable model; one or more instructions for receiving an input toselect a resource from the list of resources; one or more instructionsfor retrieving the selected resource from a storage location in responseto the input; and one or more instructions for displaying the selectedresource on the user interface.
 9. The physical medium of claim 8,wherein resources corresponding to one or more blocks in a samehierarchical level are displayed in one of a same row or a same columnof the user interface.
 10. The physical medium of claim 8, wherein theresources comprise one or more of generated code, a requirementsdocument or a coverage report.